package com.tedu.api.thread;

/**
 * 创建线程--第三种方案：匿名内部类【推荐：创建1次】
 * Lambda--JDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表遍历！ 功能：简化匿名内部类
 *                                简化集合遍历功能
 *                                简化功能方法
 *                                简化IO流功能
 *Lambda表达式语法：()->{},属于功能性接口！
 * ()  代表
 * ->  代表
 * {}  代表
 * 需求：创建接口  Insert 插排  提供：电
 *      子实现类  Computer 电脑
 *      子类实现接口--完成对象创建【创建1次】
 *      匿名内部类方式完成对象创建
 *      Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        //创建插排接口--必须使用子实现类
//        Insert cp=new Computer();     //多态：造型
//        cp.Dian();
        //子实现类---创建1次对象--匿名内部类：支持接口以及抽象类创建

//        Insert cp=new Insert() {
//            public String Dian(long money,char ch) {
//                return "电脑通电了";
//
//            }
//        };
//        cp.Dian(100,'2');
        //使用Lambda表达式--简化方法           Insert cp=()->
        Insert cp=(money,ch)->"电脑通电了";
        cp.Dian(100,'2');
        /**
         * Lambda表达式--匿名内部类【接口创建】
         * （）代表 方法中的参数，情况①：无参数，不可以删除
         *                       ②：有参数，有一个参数
         *                       ③：有参数，有2个及以上参数，不可以删除
         * -> 代表new对象过程
         * {}代表 方法中的内容 ，情况①：看方法返回值 void 空-传入输出语句，删除{}
         *                      ②：看方法返回值 Java数据类型，return Java数据类型;
         *                                    【两种：八大基本类型、引用类型】
         *                                     返回值  存在return 不可以删除【  推荐 】
         *                        2.1         返回值 不存在return   可以删除【 不推荐 】
         *                     ③：看方法返回值  返回值集合  不可以删除 {}
         */
    }
}
//创建插排--接口
interface Insert{
    public String  Dian(long money,char ch);
}
//创建插排实现类--电脑类
//class Computer implements Insert{
//    public void Dian() {
//        System.out.println("电脑通点开机");
//    }
//
//}
